var layerLoading;
$(document).ready(function(){
	// 配送方式点击事件
	$("#send_method_ul li").click(function(){
		$("#send_method_ul li").removeClass("on");
		$(this).addClass("on");
		// 如果上面自提，则隐藏地址
		var code = $(this).attr("code");
		switch (code) {
			case "door":
				$(".sett-address").hide();
				$("#addressBtm").parent().hide();
				setSaveBtmEnable();
				break;
			case "send":
				$(".sett-address").show();
				$("#addressBtm").parent().show();
				// 如果没有收货地址，限制提交
				if($("#addressBtm").html().length < 1) {
					$("#createOrderBtn").parent().removeClass("red-yellow-color").addClass("gray-color");
				}
				break;
			default:
				break;
		}
		$("input[name='shippingMethod']").val($(this).html());
	});
	// 配送时间点击事件
	$("#send_date_ul li").click(function(){
		$("#send_date_ul li").removeClass("on");
		$(this).addClass("on");
		// 设置input框值
		$("input[name='shippingTime']").val($(this).html());
	});
	
	// 收货地址的点击事件，有新增add和重新选择choose两种操作
	$(".sett-address").click(function(){
		// 根据操作判断应该怎么展示
		var op = $(this).attr("op");
		switch(op) {
			case "add" :
				addAddress();
				break;
			case "choose" :
				chooseAddress();
				break;
		}
	 });
	
	$(".bottom-div").css("height", $(".tools-btm").height()+"px").css("margin-bottom", "0px");
});

function bindSaveBtnClick() {
	if($("#createOrderBtn").parent().attr("class").indexOf("red-yellow-color")) {
		$("form").submit();
	}
}

/**
 * 点击选择地址事件，加载地址列表页面（address-content.html）显示
 */
function chooseAddress() {
	// AJAX获取地址列表
	$.ajax({type:"POST", url: "/address/list.html",
		dataType: "text",
		success: function(data) {
			if(data) {
				showLayer(data);
				// 设置来源页面为sett，表明此时的处理为：点击地址列表，是选择地址回填到结算页面；
				// 点击地址列表的新增地址成功后也是回填到结算页面
				$("#page").val("sett");
				// 添加地址事件
				$("#addressAddBtn").click(addAddress);
				bindAddressUlClick();
			} else {
				gshopLayer.fail();
			}
		}, beforeSend : function() {
			layerLoading = gshopLayer.loading();
		}, error : function() {
			gshopLayer.fail();
		}, complete : function() {
			// 关闭加载层
			layer.close(layerLoading);
		}
	});
}
/**
 * 新增地址事件，加载新增地址页面（address-edit.html）显示
 */
function addAddress() {
	// AJAX获取新增地址列表
	// 异步操作，成功失败不影响前端展示
	$.ajax({type:"POST", url: "/address/add.html",
		dataType: "text",
		success: function(data) {
			if(data) {
				showLayer(data);
				// 调用address.js文件方法执行绑定事件
				bindSaveBtnClick();
				// 绑定选择省市区县按钮事件
				$("#chooseProv").click(function(){
					chooseProv(0, getNextLevel());
				});
			}
		}, beforeSend : function() {
			layerLoading = gshopLayer.loading();
		}, error : function() {
			gshopLayer.fail();
		}, complete : function() {
			// 关闭加载层
			layer.close(layerLoading);
		}
	});
}
/**
 * 显示全屏的弹出层
 * @param content
 */
function showLayer(content) {
	gshopLayer.fullScreen({html: content});
	// 修改顶部返回按钮事件为关闭当前层，TODO GXG此处有个BUG会本页的一起修改
	$("a[name='backBtn']").attr("href","javascript:void(0);").click(function(){layer.closeAll();});
}
/**
 * 新增地址完成后的回调方法，在address-edit.html文件里面判断并调用
 * @param data	提交的参数对象
 */
function addAddrCallback(data) {
	showAddress(data.contactor+"&ensp;" +data.phone, data.provinceName +" " +data.cityName + " " + data.countryName, data.address);
}
/**
 * 操作完成后回显收货地址到结算页面上，并关闭所有弹出层
 */
function showAddress(contacts, area,  addr) {
	$(".sett-address-name").html(contacts);
	$(".sett-address-left-content p").first().html(area);
	$(".sett-address-left-content p").last().html(addr);
	$("#addressBtm").html(area + addr);
	setSaveBtmEnable();
	layer.closeAll();
}
/**
 * 设置按钮为可用样式
 */
function setSaveBtmEnable() {
	$("#createOrderBtn").parent().removeClass("gray-color").addClass("red-yellow-color");
}
